// ####################################################
// 百度地图API功能
//########################################################
//http://106.12.215.182:8080/hello-0.0.1-SNAPSHOT/upload/page

var url1 = "http://106.12.215.182:8080/hello-0.0.1-SNAPSHOT/upload/saveImg";
var url2 = "http://106.12.215.182:8080/hello-0.0.1-SNAPSHOT/upload/reLoad"
var url3 = "http://106.12.215.182:8080/hello-0.0.1-SNAPSHOT/upload/subForm";


/*var url1 = "http://localhost:8080/hello-0.0.1-SNAPSHOT/upload/saveImg";
var url2 = "http://localhost:8080/hello-0.0.1-SNAPSHOT/upload/reLoad"
var url3 = "http://localhost:8080/hello-0.0.1-SNAPSHOT/upload/subForm";*/
/*
* 浏览器定位成功、用户点击缺任定位，定位成功，逆地址解析
* 浏览器定位失败或浏览器定位出错，手动搜索定位，定位后获取经纬度，逆地址解析
* 用户重新定位/点击地图，监听使确认定位按钮亮起
*
* 开发：定义两个全局变量经纬度，定义全局marker
* */
function G(id) {
    return document.getElementById(id);
}

var map = new BMap.Map("map");
map.centerAndZoom("北京", 10);                   // 初始化地图,设置城市和地图级别。
//map.enableScrollWheelZoom(true);//鼠标滚轮缩
//定义地址变量
var lng,lat,province,city,district;

var geoc = new BMap.Geocoder();
var defaultpoint = new BMap.Point(116.404, 39.915);
var mk = new BMap.Marker(defaultpoint);
map.addOverlay(mk);
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function (r) {
    if (this.getStatus() == BMAP_STATUS_SUCCESS) {
        mk = new BMap.Marker(r.point);
        map.addOverlay(mk);
        map.panTo(r.point);
        lng = r.point.lng;
        lat = r.point.lat;
        equalLocation(r.point);
    }
    else {
        alert("您的浏览器暂不支持HTML5定位,请在搜索栏检索进行定位");
    }
});

var ac = new BMap.Autocomplete(    //建立一个自动完成的对象
    {
        "input": "search_box"
        , "location": map
    });


ac.addEventListener("onhighlight", function (e) {  //鼠标放在下拉列表上的事件
    var str = "";
    var _value = e.fromitem.value;
    var value = "";
    if (e.fromitem.index > -1) {
        value = _value.province + _value.city + _value.district;// +  _value.street +  _value.business;
    }
    str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;

    value = "";
    if (e.toitem.index > -1) {
        _value = e.toitem.value;
        value = _value.province + _value.city + _value.district;// +  _value.street +  _value.business;
    }
    str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
    G("searchResultPanel").innerHTML = str;
});


var myValue;
ac.addEventListener("onconfirm", function (e) {    //鼠标点击下拉列表后的事件
    var _value = e.item.value;
    myValue = _value.province + _value.city + _value.district;//+  _value.street +  _value.business;
    G("searchResultPanel").innerHTML = "onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
    setPlace();
});
//这是搜索框定位的setPlace
function setPlace() {
    map.clearOverlays();    //清除地图上所有覆盖物
    function myFun() {
        var pp = local.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
        mk = new BMap.Marker(pp);
        map.centerAndZoom(pp, 10);
        map.addOverlay(mk);    //添加标注
        lng = pp.lng;
        lat = pp.lat
        equalLocation(pp);
    }


    var local = new BMap.LocalSearch(map, { //智能搜索
        onSearchComplete: myFun
    });
    local.search(myValue);

}


/*  var myGeo = new BMap.Geocoder();
  // 根据坐标得到地址描述
  myGeo.getLocation(new BMap.Point(116.364, 39.993), function(result){
      if (result){

      }
  });*/


map.addEventListener("click", function (e) {
    var pt = e.point;
    lng = e.point.lng;
    lat = e.point.lat;
    mk.setPosition(e.point);

    map.addOverlay(mk);

    map.panTo(pt);

    equalLocation(pt);
});
function equalLocation(pt)//逆地址解析
{
    geoc.getLocation(pt, function (rs) {
        var addComp = rs.addressComponents;
        province = addComp.province;
        city = addComp.city;
        district = addComp.district;
        $("#reminder").html("#定位成功，"+province+city+district);
});
}
//##################################################################################
//upload配置     //236行
//##################################################################################

// 初始化Web Uploader

var uploader = WebUploader.create({

    // 选完文件后，是否自动上传。
    auto: true,

    // swf文件路径
    swf: '../static/webuploader-0.1.5/Uploader.swf',

    // 文件接收服务端。
    server: url1,

    // 选择文件的按钮。可选。
    // 内部根据当前运行是创建，可能是input元素，也可能是flash.
    pick: '#filePicker',

    // 只允许选择图片文件。
    accept: {
        title: 'Images',
        extensions: 'gif,jpg,jpeg,bmp,png',
        mimeTypes: 'image/*'
    },
    fileNumLimit: 3
});
// 当有文件添加进来的时候
uploader.on('fileQueued', function (file) {
    var $li = $(
        '<div id="' + file.id + '" class="file-item thumbnail" style = "float: left;margin-right:30px;">' +
        '<img>' +
        //'<div class="info">' + file.name + '</div>' +
        '</div>'
        ),
        $img = $li.find('img');


    // $list为容器jQuery实例
    $("#fileList").append($li);
    // 创建缩略图
    // 如果为非图片文件，可以不用调用此方法。
    // thumbnailWidth x thumbnailHeight 为 100 x 100
    var thumbnailWidth = 120;
    var thumbnailHeight = 100;
    uploader.makeThumb(file, function (error, src) {
        if (error) {
            $img.replaceWith('<span>不能预览</span>');
            return;
        }

        $img.attr('src', src);
    }, thumbnailWidth, thumbnailHeight);
});


// 文件上传过程中创建进度条实时显示。
uploader.on('uploadProgress', function (file, percentage) {
    var $li = $('#' + file.id),
        $percent = $li.find('.progress span');

    // 避免重复创建
    if (!$percent.length) {
        $percent = $('<p class="progress"><span></span></p>')
            .appendTo($li)
            .find('span');
    }

    $("").css('width', percentage * 100 + '%');
});

// 文件上传成功，给item添加成功class, 用样式标记上传成功。
uploader.on('uploadSuccess', function (file) {
    $('#' + file.id).addClass('upload-state-done');
});

// 文件上传失败，显示上传出错。
uploader.on('uploadError', function (file) {
    var $li = $('#' + file.id),
        $error = $li.find('div.error');

    // 避免重复创建
    if (!$error.length) {
        $error = $('<div class="error"></div>').appendTo($li);
    }

    $error.text('上传失败');
});

// 完成上传完了，成功或者失败，先删除进度条。
uploader.on('uploadComplete', function (file) {
    $('#' + file.id).find('.progress').remove();
});



function reImgList() {
    $.ajax({
        url: url2,
        type: "post",
        contentType: "application/json",
        success: function () {
        },
        error: function () {
            console.log("未知错误");
        }

    });
}


function reload() {
    $("#fileList").html("");
    reImgList();
    uploader.reset();

    }





//################################################################
//#Ajax提交
//################################################################

var form = layui.form
    , layer = layui.layer
    , layedit = layui.layedit;





//自定义验证规则
form.verify({
    headline: function (value) {
        if (value.length < 3) {
            return '标题至少得3个字符啊';
        }
    }
});


//监听提交
form.on('submit(formdata)', function (data) {
    var json = data.field;
    json.userid = 1;
    json.jd = lng;
    json.wd = lat;
    json.province = province;
    json.city = city;
    json.district = district;
    json.sold=0;
    json.stock=0;
    jj = JSON.stringify(json);
    /* layer.alert(jj, {
         title: '最终的提交信息'
     });*/
    $.ajax({
        url: url3,
        type: "post",
        contentType: "application/json",
        data: jj,
        success: function (data) {
            alert(data);
        },
        error: function () {
            console.log("未知错误");
        }

    });

    return false;
});

